Online applications often provide services to a wide variety of users. Often, in a process called profiling, the online applications attempt to customize the online application based on user attributes. For instance, an online store might advertise specific products based on prior products that the user has purchased. The types of products offered might change depending on further user behaviors.
Typically, the customization of the online application often uses new code in order to implement some types of changes in the profiling operation. Furthermore, the processing time necessary to profile a set of users increases dramatically as the number of users and corresponding attributes increase.